/**
* Copyright (C) 2018-2022
* All rights reserved, Designed By www.yixiang.co
* 注意：
* 本软件为www.yixiang.co开发研制，未经购买不得使用
* 购买后可获得全部源代码（禁止转卖、分享、上传到码云、github等开源平台）
* 一经发现盗用、分享等行为，将追究法律责任，后果自负
*/
package co.yixiang.modules.shop.service;

import co.yixiang.common.service.BaseService;
import co.yixiang.domain.PageResult;
import co.yixiang.modules.domain.YxStoreProductStockRecord;
import co.yixiang.modules.shop.param.ProductInputFormParam;
import co.yixiang.modules.shop.service.dto.YxStoreProductStockRecordDto;
import co.yixiang.modules.shop.service.dto.YxStoreProductStockRecordQueryCriteria;
import com.alibaba.fastjson.JSONObject;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
* @author hdb
* @date 2024-05-07
*/
public interface YxStoreProductStockRecordService  extends BaseService<YxStoreProductStockRecord>{

    /**
    * 查询数据分页
    * @param criteria 条件
    * @param pageable 分页参数
    * @return Map<String,Object>
    */
    PageResult<YxStoreProductStockRecordDto>  queryAll(YxStoreProductStockRecordQueryCriteria criteria, Pageable pageable);

    /**
    * 查询所有数据不分页
    * @param criteria 条件参数
    * @return List<YxStoreProductStockRecordDto>
    */
    List<YxStoreProductStockRecord> queryAll(YxStoreProductStockRecordQueryCriteria criteria);

    /**
    * 导出数据
    * @param all 待导出的数据
    * @param response /
    * @throws IOException /
    */
    void download(List<YxStoreProductStockRecordDto> all, HttpServletResponse response,Integer type) throws IOException;

    /**
     * 商品采购入库
     * @param param
     */
    void productInputForm(ProductInputFormParam param);

    /**
     * 根据销售记录单号查询记录
     * @param paramObject
     * @return
     */
    List<Map<String, Object>> queryRecordListByRecordSn(JSONObject paramObject);
}
